feat: move update button to sidebar footer as dismissable pill#1116
feat: move update button to sidebar footer as dismissable pill#1116Noojuno wants to merge 4 commits intopingdotgg:mainfrom
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Move the desktop update button from the sidebar header to the footer, displayed as a pill above the Settings button. The pill shows contextual states: "Update available", "Downloading (X%)", and "Restart to update". Add a dismiss button that hides the notification until the next app launch.
Move all desktop update UI (pill + arm64 warning) into a single SidebarUpdatePill component that owns its own state subscription, action handlers, and dismiss logic. Removes ~220 lines from Sidebar.tsx.
Use the original Alert component with title and description for the arm64 Intel build warning, remove redundant action button since the update pill handles it, and match sidebar font size with text-xs.
Restore real bridge subscription and isElectron checks that were hardcoded for local testing.
1303272 to
1aa4ce5
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| <div | ||
| className={`group/update relative flex w-full items-center rounded-full text-xs font-medium bg-sky-400/15 text-sky-400${ | ||
| disabled ? " cursor-not-allowed opacity-60" : "" | ||
| }`} |
There was a problem hiding this comment.
Update pill lacks visual differentiation for error states
Low Severity
The pill always renders with bg-sky-400/15 text-sky-400 styling regardless of state. The old code used shouldHighlightDesktopUpdateError to apply text-rose-500 animate-pulse for error states (download/install failures), visually alerting users something went wrong. The new pill drops that import entirely, making shouldHighlightDesktopUpdateError dead code in production (only referenced in tests). Additionally, when state.status is "error" with errorContext === "download", the pill label reads "Update available" rather than indicating a retry, since it falls through to the default branch. The tooltip provides correct error context, but the primary visible label is misleading for error-retry scenarios.


What Changed
Why
It was a little unclear when there was a new update available. This change is to increase clarity and make it very obvious when there is a new update.
UI Changes
Update process
Note: This process was mocked, so we didn't actually restart the app.
Screen.Recording.2026-03-15.at.11.33.42.PM.mov
Dismiss
Screen.Recording.2026-03-15.at.11.34.03.PM.mov
arm64 running intel warning
Checklist
Note
Move desktop update indicator to sidebar footer as a dismissable pill
SidebarUpdatePillabove the pill.Macroscope summarized 1aa4ce5.
Note
Medium Risk
Moderate risk: refactors the Electron update UI and its event subscription/click handlers, which could affect update visibility and triggering download/install actions. Changes are UI-scoped but interact with
desktopBridgeupdate APIs.Overview
Moves the Electron desktop update UI from a small header icon (and inline Apple Silicon Intel-build warning) into a new
SidebarUpdatePillrendered in the sidebar footer.The new pill subscribes to
desktopBridgeupdate state, shows status-specific labels (available, downloading with %, restart-to-update), triggersdownloadUpdate/installUpdatewith existing toast handling, and adds a dismiss control that hides the pill until next launch (while preserving the Apple Silicon warning alert).Written by Cursor Bugbot for commit 1aa4ce5. This will update automatically on new commits. Configure here.